package com.itheima.service.system;

import com.github.pagehelper.PageInfo;
import com.itheima.domain.system.Permission;
import com.itheima.domain.system.User;

import java.util.List;

public interface UserService {
    /**
     *添加
     * @param user
     * @return
     * */
    void save(User user);

    /**
     *删除
     * @param id
     * @return
     * */
    void delete(String id);

    /**
     *修改
     * @param user
     * @return
     * */
    void update(User user);

    /**
     *查询单个
     * @param id 查询的条件（id）
     * @return User 查询的结果 单个对象
     * */
    User findById(String id);

    /**
     * 查询全部
     * @return 全部数据的列表对象
     * */
    List<User> findAll();

    /**
     * 分页查询
     * @param page 页码
     * @param size 每页显示的数据总量
     * @return
     * */
    PageInfo findAll(int page, int size);


    /**
     * 修改角色信息
     * @param userId 用户id
     * @param roleIds 角色id
     * */
    void updateRole(String userId, String[] roleIds);

   /* *//**
     * 模糊查询用户
     * @param name 查询的字段
     * @return List<User> 有该字段的用户集合
     * *//*
    List<User> search(String name);*/

  /*  *//**
     * 异步查询email
     * *//*
    int findByEmail(String email);*/

    /**
     * 模糊查询用户
     * */
    PageInfo findByName(int page, int size, String value);
    User login(String username, String password);

    User findUserById(String userId);

    void updatePwdById(String userId, String newPwd);

    List<Permission> findPermissionById(String id);
}
